#include <stdio.h>

// DZ写代码 在写注释
// ZD写注释 在写代码

int search(int* nums, int numsSize, int target) {
    // 初始化区间，此题中是搜索整个数组，所以是左闭右闭
    int left = 0; // 二分搜索区间左端点
    int right = numsSize - 1; // 二分搜索区间右端点
    int middle = 0;
    // 循环体执行的条件：只要区间是左闭右闭的合法区间，就继续搜索
    while (left <= right) {
        middle = (left + right) / 2;
        // 如果target在左区间，更新左区间的右端点
        if (nums[middle] > target) {
            right = middle - 1;
        }
        // 如果target在右区间，更新右区间的左端点
        else if (nums[middle] < target) {
            left = middle + 1;
        }
        // 如果target就是middle所指，搜索结束
        else return middle;
    }
    // 如果二分查找结束后一直找不到，返回-1
    return -1;
}

// for循环遍历整个数组
int search(int* nums, int numsSize, int target) {
    for (int i = 0; i < numsSize ; i++) {
        if (nums[i] == target) {
            return i; // 如果查找到，直接返回下标
        }
    }
    
    return -1; // 如果没有查找到，返回-1
}